<?php
 Session_Start () ;
 If (!$_SESSION ["repertoire_config"]) { Header ("Location: ../../") ; }
 Include ("../../include/garennes.cfg") ;
 Include ("../../include/init.php") ;
 Include ("../include/config.inc") ;
 verif_droits ($droit_courant, $_SESSION ["code"]) ;
 
 $num_table = var_courante ("num_table", 0, null) ;
 $etape = var_courante ("etape", 0, null) ;
 $num_etab = var_courante ("num_etab", 0, null) ;
 $forcage = var_courante ("forcage", 2, 0) ;
 $millesime = millesime (0) ;
 
 $etab = etablissements ($millesime) ;
 $etab [0][1] = 0 ;
 For ($i = 1 ; $i <= $etab [0][0] ; $i++)
  {
   If ($forcage == 1) { sauvegarde_configuration ("SYSTEME_PARAM", "GENERAL", "APB_".$millesime."_".$etab [$i][0], 0) ; }
   $etab [$i][6] = restaure_configuration_defaut ("SYSTEME_PARAM", "GENERAL", "APB_".$millesime."_".$etab [$i][0], 0) ;
   If ($etab [$i][6] == 0) { $etab [0][1]++ ; }
  }
 
 $resultats = SQL_commande ("SELECT * FROM menus WHERE numero='".$droit_courant."' AND ordre='0'", $id_sql) ;
 $l = SQL_tableau_associatif ($resultats, "") ;
 Echo "<html><head>" ;
 entete_html ("Garennes", "travail", 1) ;
 Echo styles ("none", "none", "none", $l ["lien"], "none") ;
 Echo "</head>" ;
 
 Echo "<body background=\"../images/fond.png\" text=\"#000000\" onContextMenu=\"return false\">" ;
 Echo "<center><font color=\"#0000FF\">Mise&nbsp;&agrave;&nbsp;jour&nbsp;XML&nbsp;pour&nbsp;APB</font></center>" ;
 
 If (IsSet ($num_table) And ((integer)$num_table > 0))
  {
   If (IsSet ($etape) And ((integer)$etape > 0))
    {
     Switch ((integer)$etape)
      {
       Case 1 : Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                Echo "<tr><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
		Echo "<tr><td align=\"center\">&nbsp;Mise&nbsp;&agrave;&nbsp;jour&nbsp;<b>".$maj_xml [0][$num_table][0]."</b>&nbsp;(&Eacute;tape&nbsp;".$num_table.")&nbsp;</td></tr>" ;
		Echo "<tr><td>&nbsp;</td></tr>" ;
		Echo "<tr><td>&nbsp;Pour&nbsp;l'&Eacute;tablissement&nbsp;<b><font color=\"#0000FF\">".$etab [$num_etab][1]."&nbsp;(".$etab [$num_etab][5].")</font></b></center>&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"center\"><br>&nbsp;Pour&nbsp;poursuivre&nbsp;,&nbsp;il&nbsp;faudra&nbsp;" ;
                If ($maj_xml [$num_table][0][0] > 1) { Echo "les&nbsp;fichiers&nbsp;suivants&nbsp;:&nbsp;" ; } Else { Echo "le&nbsp;fichier&nbsp;suivant&nbsp;:&nbsp;" ; }
                Echo "</td></tr>" ;
                Echo "<tr><td>&nbsp;</td></tr>" ;
                For ($i = 1 ; $i <= $maj_xml [$num_table][0][0] ; $i++)
                 {
                  If ($maj_xml [$num_table][$i][0])
		   {
		    $chaine = $maj_xml [$num_table][$i][0] ;
		    $chaine = Str_Replace ("&lt;RNE&gt;", $etab [$num_etab][5], $chaine) ;
		    $chaine = Str_Replace ("&lt;ANNEE&gt;", $millesime, $chaine) ;
		    Echo "<tr><td align=\"center\">&nbsp;<b>".$chaine."</b>&nbsp;</td></tr>" ;
		   }
                 }
                Echo "<tr><td>&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"center\" bgcolor=\"".$l ["nom"]."\"><br>&nbsp;".$maj_xml [$num_table][0][1]."&nbsp;<br>&nbsp;</td></tr>" ;
                Echo "<tr><td>&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"right\">&nbsp;<a href=\"./mise_a_jour_apb.php?num_table=".$num_table."&etape=".($etape+1)."&num_etab=".$num_etab."\">&nbsp;SUIVANT-->&nbsp;</a>&nbsp;</td></tr>" ;
                Echo "</table></td></tr></table>" ;
		Echo "<center><a href=\"./mise_a_jour_apb.php\">&nbsp;ANNULER&nbsp;</a></center>" ;
		Break ;
       Case 2 : Echo "<form action=\"./mise_a_jour_apb.php\" method=\"post\" name=\"forme\" onSubmit=\"javascript:valide()\" enctype=\"multipart/form-data\">" ;
                Echo "<input type=\"hidden\" name=\"chemin\" value=\"\">" ;
		Echo "<input type=\"hidden\" name=\"etape\" value=\"".($etape+1)."\">" ;
		Echo "<input type=\"hidden\" name=\"num_table\" value=\"".$num_table."\">" ;
		Echo "<input type=\"hidden\" name=\"num_etab\" value=\"".$num_etab."\">" ;
                Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                Echo "<tr><td align=\"center\" bgcolor=\"".$l ["lien"]."\">&nbsp;Indiquez&nbsp;o&ugrave;&nbsp;se&nbsp;trouve&nbsp;" ;
                If ($maj_xml [$num_table][0][0] > 1) { Echo "les&nbsp;fichiers&nbsp;suivants&nbsp;:&nbsp;" ; } Else { Echo "le&nbsp;fichier&nbsp;suivant&nbsp;:&nbsp;" ; }
		Echo "(&Eacute;tape&nbsp;".$num_table.")&nbsp;" ;
                Echo "<tr><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
                For ($i = 1 ; $i <= $maj_xml [$num_table][0][0] ; $i++)
                 {
                  If ($maj_xml [$num_table][$i][0])
                   {
		    $chaine = $maj_xml [$num_table][$i][0] ;
		    $chaine = Str_Replace ("&lt;RNE&gt;", $etab [$num_etab][5], $chaine) ;
		    $chaine = Str_Replace ("&lt;ANNEE&gt;", $millesime, $chaine) ;
                    Echo "<tr><td colspan=\"2\">&nbsp;</td></tr>" ;
                    Echo "<tr><td align=\"right\">&nbsp;<b>".$chaine."</b>&nbsp;:&nbsp;</td>" ;
                    Echo "<td><input type=\"file\" name=\"nom_".$i."\" size=\"50\">&nbsp;</td></tr>" ;
                   }
                 }
                Echo "<tr><td colspan=\"2\">&nbsp;</td></tr></table></td></tr>" ;
		Echo "<tr><td align=\"center\">&nbsp;<b>&Eacute;tablissement&nbsp;concern&eacute;</b>&nbsp;:&nbsp;<b><font color=\"#0000FF\">".$etab [$num_etab][1]."&nbsp;(".$etab [$num_etab][5].")</font></b></center>&nbsp;</td></tr>" ;
		Echo "</table>" ;
                Echo "<center>&nbsp;<input type=\"submit\" name=\"submit\" value=\" Ins&eacute;rer \"></center><br>" ;
                Echo "</form>" ;
		Echo "<center><a href=\"./mise_a_jour_apb.php\">&nbsp;ANNULER&nbsp;</a></center>" ;
	        Break ;
       Case 3 : Include ("../../include/import_xml.inc") ;
                $ok_fichier = 0 ;
		$nom_dossier = Date ("Ymd_his") ;
                For ($i = 1 ; $i <= $maj_xml [$num_table][0][0] ; $i++)
                 {
                  If ($maj_xml [$num_table][$i][0])
                   {
                    If ($_FILES ["nom_".$i]["error"] == 0)
                     {
                      If (Is_UpLoaded_File ($_FILES ["nom_".$i]["tmp_name"]))
                       {
	                @MkDir ("../../tmp/".$nom_dossier) ;
	                @Copy ($_FILES ["nom_".$i]["tmp_name"], "../../tmp/".$nom_dossier."/".$_FILES ["nom_".$i]["tmp_name"]) ;
			If ($sauvegarde_fichier_actif == 1) { sauvegarde_fichier ($millesime, $_FILES ["nom_".$i]["name"], $_FILES ["nom_".$i]["tmp_name"]) ; }
	                $chaine = @Implode ("", @File ($_FILES ["nom_".$i]["tmp_name"])) ;
			$chaine = filtrage_utf8 ($chaine) ;
                        $table [0] = 0 ;
                        If (garennes_verification_millesime ($chaine, $millesime))
                         {
                          creation_tables ($chaine, $structures_xml, $maj_xml [$num_table][0][2]) ;
			  $ok_fichier++ ;
			 }
			Else { $ok_fichier = -1 ; }
		       }
		     }
		   }
		 }
		// Traitement des importations
		If ($ok_fichier > 0)
		 {
		  // Mise a jour bdd si tables n'existes pas
		  If (test_presence_table ("mefs", $id_sql) == 0)
		   {
		    $requete  = "CREATE TABLE mefs (id_mef int(11) NOT NULL auto_increment,id_etablissement int(11) NOT NULL,code varchar(11) NOT NULL,formation varchar(6) NOT NULL,specialite varchar(5) NOT NULL," ;
		    $requete .= "libelle_long varchar(40) NOT NULL,libelle_edition varchar(60) NOT NULL,mefstat11 varchar(11) NOT NULL,mefstat4 varchar(4) NOT NULL,PRIMARY KEY(id_mef));" ;
		    $ok = SQL_commande ($requete, $id_sql) ;
		   }
		  If (test_presence_table ("mefstats4", $id_sql) == 0)
		   {
		    $requete  = "CREATE TABLE mefstats4 (id_mefstats4 int(11) NOT NULL auto_increment,code varchar(4) NOT NULL,libelle_court varchar(20) NOT NULL," ;
		    $requete .= "libelle_long varchar(40) NOT NULL,PRIMARY KEY(id_mefstats4))" ;
		    $ok = SQL_commande ($requete, $id_sql) ;
		   }
		  If (test_presence_table ("types_modalites", $id_sql) == 0)
		   {
		    $requete  = "CREATE TABLE types_modalites (id_type_modalite INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,code VARCHAR(1) NOT NULL," ;
		    $requete  .= "libelle_long VARCHAR(40) NOT NULL,libelle_court VARCHAR(10) NOT NULL);" ;
		    $ok = SQL_commande ($requete, $id_sql) ;
		   }
		  If (test_presence_table ("modalites", $id_sql) == 0)
		   {
		    $requete  = "CREATE TABLE modalites (id_modalite INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,code_mef VARCHAR(11) NOT NULL," ;
		    $requete .= "code_matiere VARCHAR(6) NOT NULL,code_gestion VARCHAR(5) NOT NULL,libelle_long VARCHAR(40) NOT NULL," ;
		    $requete .= "libelle_court VARCHAR(20) NOT NULL,libelle_edition VARCHAR(60) NOT NULL,modalite VARCHAR(1) NOT NULL,horaire VARCHAR(10) NOT NULL);" ;
		    $ok = SQL_commande ($requete, $id_sql) ;
		   }
		  If (test_presence_champ ("eleves", "mef", $id_sql) == 0)
		   {
		    $requete = "ALTER TABLE eleves ADD mef VARCHAR(11) NOT NULL AFTER code_classe" ;
		    $ok = SQL_commande ($requete, $id_sql) ;
		   }
		  // Mise a jour bdd
		  $entete = $structures_xml [$maj_xml [$num_table][0][2]][0][0][2] ;
		  Switch ($num_table)
		   {
		    Case 1 : $etat = ins_maj_mefs_structure ($entete, $etab [$num_etab][0]) ;
		             Break ;
		    Case 2 : $etat = ins_maj_modalites ($entete) ;
		             Break ;
		    Case 3 : $etat = ins_maj_mefs_eleves ($entete) ;
		             Break ;
		   }
		 }
                // Destruction des tables SCONET temporaires
                For ($i = 1 ; $i <= $table [0] ; $i++)
                 {
                  $ok = SQL_commande ("DROP TABLE ".$table [$i], $id_sql) ;
                 }
		
                If ($ok_fichier == 0)
                 {
                  Switch ((integer)$_FILES ["nom_".$i]["error"])
                   {
                     Case 1 : $message = "Le param&egrave;tre <i>upload_max_filesize</i> dans <b>php.ini</b> est trop petit." ; Break ;
                     Case 2 : $message = "Le param&egrave;tre HTML, <i>MAX_FILE_SIZE</i> est trop petit." ; Break ;
                     Case 3 : $message = "Le transfert du fichier ne s'est pas effectu&eacute; dans sa totalit&eacute; (r&eacute;pertoire temporaire trop petit ?)." ; Break ;
                     Case 4 : $message = "Aucun transfert de fichier ne s'est effectu&eacute; (probl&egrave;me serveur web ?)." ; Break ;
                    Default : $message = "Erreur lors du t&eacute;l&eacute;chargement du fichier (corrompu ?)" ; Break ;
                   }
                 }
                ElseIf ($ok_fichier < 0) { $message = "Ann&eacute;e scolaire non valide." ; }
                If (IsSet ($message)) { Echo "<center><font color=\"#FF0000\"><b><blink>".$message."</blink></b></font></center>" ; }
		If ((IsSet ($mess)) Or (IsSet ($ligne))) { affiche_message ($mess, $ligne) ; }
		UnSet ($l) ;
		$resultats = SQL_commande ("SELECT * FROM menus WHERE numero='".$droit_courant."' AND ordre='0'", $id_sql) ;
                $l = SQL_tableau_associatif ($resultats, "") ;
		Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                Echo "<tr><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
                Echo "<tr><td>" ;
		If ($ok_fichier > 0)
		 {
		  Switch ($num_table)
		   {
		    Case 1 :
		    Case 2 : Echo "<br><center>&nbsp;Mise &agrave; jour XML <b>".$maj_xml [0][$num_table][0]."</b> effectu&eacute;e&nbsp;</center><br>" ;
		             Echo "&nbsp;Pour&nbsp;<b>l'&eacute;tablissement&nbsp;</b>&nbsp;<b><font color=\"#0000ff\">".$etab [$num_etab][1]."&nbsp;(".$etab [$num_etab][5].")</font></b>&nbsp;<br>" ;
			     Break ;
		    Case 3 : Echo "<br><center>&nbsp;Mise &agrave; jour XML <b>".$maj_xml [0][$num_table][0]."</b> effectu&eacute;e&nbsp;</center><br>" ;
			     Echo "&nbsp;Pour&nbsp;<b>l'&eacute;tablissement&nbsp;</b>&nbsp;<b><font color=\"#0000ff\">".$etab [$num_etab][1]."&nbsp;(".$etab [$num_etab][5].")</font></b>&nbsp;<br>" ;
		             If ($etat > 0)
		              {
			       If ($etat > 1) { $plus = "s" ; $plus2 = "n'ont" ; } Else { $plus = "" ; $plus2 = "n'a" ; }
		               Echo "<br>&nbsp;<i><b>ATTENTION</b></i> : <br>&nbsp;&nbsp;&nbsp;Il y a ".$etat." eleve".$plus." qui ".$plus2." pas de correspondance dans Garennes.&nbsp;</center><br>" ;
			      }
			     Break ;
		   }
		 }
		Else { Echo "<br><center>&nbsp;Aucun mise &agrave; jour XML n'a &eacute;t&eacute; effectu&eacute;e.&nbsp;</center><br>" ; }
		Echo "</td></tr>" ;
		Echo "<tr><td>&nbsp;</td></tr>" ;
		// Etape suivante
		$num_table++ ;
		If ($num_table > $maj_xml [0][0][0])
		 {
		  // Indique que la maj est faite pour ce millesime
		  $maj_apb = sauvegarde_configuration ("SYSTEME_PARAM", "GENERAL", "APB_".$millesime."_".$etab [$num_etab][0], 1) ;
		  // Passe a l'etablissement suivant (si existe)
		  Do
		   {
		    $num_etab++ ;
		   }
		  While (($etab [$num_etab][6] == 1) And ($num_etab <= $etab [0][0])) ;
		  $num_table = 1 ;
		 }
		If ($num_etab > $etab [0][0])
		 {
		  // Fin
		  Echo "<tr><td align=\"right\"><a href=\"./travail.php\" border=\"0\" title=\"Fin de mise &agrave; jour...\">&nbsp;TERMIN&Eacute;&nbsp;-->&nbsp;</a></td></tr>" ;
		 }
		Else
		 {
		  // Etablissement suivant
		  Echo "<tr><td align=\"right\"><a href=\"./mise_a_jour_apb.php?num_table=".$num_table."&etape=1&num_etab=".$num_etab."\">&nbsp;&Eacute;tape&nbsp;SUIVANTE&nbsp;-->&nbsp;</a></td></tr>" ;
		 }
                Echo "<tr><td>&nbsp;</td></tr>" ;
                Echo "</table></td></tr></table>" ;
                Break ;
      }
    }
  }
 Else
  {
   // PREMIERE PAGE
   Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
   Echo "<tr><td>" ;
   Echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
   Echo "<tr><td align=\"center\">&nbsp;Bonjour.<br>&nbsp;Bienvenue&nbsp;sur&nbsp;l'interface&nbsp;de mise&nbsp;&agrave;&nbsp;jour&nbsp;pour&nbsp;APB.&nbsp;<br>&nbsp;</td></tr>" ;
   Echo "<tr><td align=\"center\">&nbsp;Mill&eacute;sime&nbsp;courant&nbsp;:&nbsp;".$millesime."&nbsp;.&nbsp;<br>&nbsp;</td></tr>" ;
   If ($etab [0][1] > 0)
    {
     Echo "<tr><td align=\"center\">&nbsp;Voici&nbsp;les&nbsp;diff&eacute;rentes&nbsp;&eacute;tapes&nbsp;&agrave;&nbsp;parcourir&nbsp;:&nbsp;<br>" ;
     Echo "<tr><td>&nbsp;</td></tr>" ;
     For ($i = 1 ; $i <= $maj_xml [0][0][0] ; $i++)
      {
       Echo "<tr><td align=\"center\">&nbsp;<b>Mise&nbsp;&agrave;&nbsp;jour&nbsp;<b>".$maj_xml [0][$i][0]."</b>&nbsp;<br>&nbsp;</td>" ;
      }
     Echo "<tr><td>&nbsp;</td></tr>" ;
     Echo "<tr><td align=\"center\">&nbsp;pour&nbsp;" ;
     If ($etab [0][1] > 1) { Echo "les&nbsp;&eacute;tablissements&nbsp;suivants&nbsp;:&nbsp;<br><br>" ; } Else { Echo "l'&eacute;tablissement&nbsp;suivant&nbsp;:&nbsp;<br><br>" ; }
     $premier = 0 ;
     For ($i = 1 ; $i <= $etab [0][0] ; $i++)
      {
       If ($etab [$i][6] == 0)
        {
         Echo "&nbsp;".$etab [$i][1]."&nbsp;(".$etab [$i][5].")&nbsp;<br>" ;
         If ($premier == 0) { $premier = $i ; }
        }
      }
     Echo "&nbsp;</td></tr>" ;
     Echo "<tr><td>&nbsp;</td></tr>" ;
     Echo "<tr><td align=\"right\"><a href=\"./mise_a_jour_apb.php?num_table=1&etape=1&num_etab=".$premier."\">&nbsp;COMMENCER&nbsp;LA&nbsp;MISE&nbsp;&Agrave;&nbsp;JOUR&nbsp;-->&nbsp;</a></td></tr>" ;
    }
   Else
    {
     Echo "<tr><td align=\"center\">&nbsp;La&nbsp;mise&nbsp;&agrave;&nbsp;jour&nbsp;est&nbsp;inutile&nbsp;:&nbsp;" ;
     Echo "&nbsp;Elle&nbsp;a&nbsp;d&eacute;j&agrave;&nbsp;&eacute;t&eacute;&nbsp;faite.&nbsp;<br>&nbsp;</td></tr>" ;
     Echo "<tr><td align=\"center\">&nbsp;Vous&nbsp;pouvez&nbsp;la&nbsp;forcer&nbsp;en&nbsp;cliquant&nbsp;sur&nbsp;ce&nbsp;lien&nbsp;:&nbsp;" ;
     Echo "<a href=\"./mise_a_jour_apb.php?forcage=1\">&nbsp;Mise&nbsp;&agrave;&nbsp;jour&nbsp;forc&eacute;e&nbsp;</a>&nbsp;<br>&nbsp;</td></tr>" ;
    }
   Echo "<tr><td>&nbsp;</td></tr>" ;
   Echo "</table></td></tr></table>" ;
  }
 Echo "</body></html>" ;
?>